package com.hzhc.service;

import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzhc.entity.CntrInfo;
import com.hzhc.entity.DeclareCar;
import com.hzhc.entity.YwOrderCntr;
import com.hzhc.utils.ResultUtil;
import com.hzhc.vo.CarInfoVo;
import com.hzhc.vo.DeclareCarVo;
import com.hzhc.vo.YwOrderCntrVo;
import org.apache.poi.ss.formula.functions.T;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 卡口记录 服务类
 * </p>
 *
 * @author 功不唐捐
 * @since 2024-05-30
 */
public interface DeclareCarService extends IService<DeclareCar> {

    List<DeclareCarVo> getDeclareCarList(DeclareCarVo vo, Page<DeclareCarVo> pagination);

    List<YwOrderCntrVo> getGateYwOrderCntrList(DeclareCarVo vo);
    List<DeclareCarVo> getOutGateYwOrderCntrList(DeclareCarVo vo);

    ResultUtil<T> addJkInGateRet(DeclareCarVo vo);

    ResultUtil<T> updateDeclareCar(DeclareCarVo vo);

    ResultUtil<T> deleteDeclareCar(int id);

    List<DeclareCarVo> getZkTodayRcCarList(Page<DeclareCarVo> page, DeclareCarVo vo);

    List<DeclareCarVo> getIpadTodayCarList(DeclareCarVo declareCarVo);

    Integer getCountTodayRcCarList(String orderType);

    ResultUtil<T> addCkInGateRet(DeclareCarVo vo);

    ResultUtil<T> updateCntrTxTally(DeclareCarVo declareCarVo);
    ResultUtil<T> updateCntrTxTallyNew(DeclareCarVo declareCarVo);

    DeclareCarVo getNotFinishedWeigh(DeclareCarVo vo);

    Map<String, Object> getStatisticsData(DeclareCarVo vo);

    List<DeclareCarVo> getList(Page<DeclareCarVo> page, DeclareCarVo vo);

    ResultUtil<T> addSgjInGateRet(DeclareCarVo vo);

    ResultUtil<T> addSgjOutGateRet(DeclareCarVo vo);

    ResultUtil<T> addSgjNewInGateRet(DeclareCarVo vo);

    ResultUtil<T> addNewJkInGateRet(DeclareCarVo vo,String autoTally);

    ResultUtil<T> addNewCkInGateRet(DeclareCarVo vo);

    List<DeclareCarVo> getCkCarNo(DeclareCarVo vo);

    ResultUtil<T> backCntrTally(DeclareCarVo declareCarVo);

    List<DeclareCarVo> getTxCarList(DeclareCarVo vo);

    Map getCntrByOrderNo(YwOrderCntrVo vo);

    List<YwOrderCntrVo> getCntr(YwOrderCntrVo vo);

    ResultUtil<T> cancelTxRet(DeclareCarVo declareCarVo);

    List<DeclareCarVo> getCarNoJk(DeclareCarVo car);

    List<DeclareCarVo> getLxCarList(DeclareCarVo vo);

    List<YwOrderCntrVo> getTzhkCntrList(DeclareCarVo vo);

    List<DeclareCar> getUnfinishedDeclareCarList(String orderNo);
}
